package tbalert.web.manager;

import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import tbalert.hibernate3.Updater;
import tbalert.page.Pagination;
import tbalert.security.BadCredentialsException;
import tbalert.security.UsernameNotFoundException;
import tbalert.session.SessionProvider;
import tbalert.web.entity.Dwdm;

public interface DwdmMng {
	/**
	 * 计算dwid
	 * 
	 * @param dwid
	 * @return
	 */
	public String buildDwid(String sjdwiId);

	public Dwdm disable(String id);

	public boolean dlmcExist(String dlmc);

	public Dwdm enable(String id);

	/**
	 * 根据查询条件 查找分页数据
	 * 
	 * @param dwdm
	 * @param pageNo
	 * @param pageSize
	 * @return
	 */
	public Pagination find(Dwdm dwdm, int pageNo, int pageSize);

	/**
	 * 根据认证ID查找认证信息
	 * 
	 * @param id
	 *            认证ID
	 * @return
	 */
	public Dwdm findById(String id);

	/**
	 * 根据当前登录dwid查找新增单位上级
	 * 
	 * @param sjdwId
	 * @return
	 */
	public List<Dwdm> findBySjdw(String sjdwId);

	/**
	 * 密码是否正确
	 * 
	 * @param id
	 *            用户ID
	 * @param password
	 *            未加密密码
	 * @return
	 */
	public boolean isDlmmValid(String id, String dlmm);

	/**
	 * 登录
	 * 
	 * @param username
	 *            用户名
	 * @param password
	 *            密码
	 * @param ip
	 *            登录IP
	 * @return 认证信息
	 * @throws UsernameNotFoundException
	 *             用户名没有找到
	 * @throws BadCredentialsException
	 *             错误的认证信息，比如密码错误
	 */
	public Dwdm login(String dlmc, String dlmm, HttpServletRequest request,
			HttpServletResponse response, SessionProvider session)
			throws UsernameNotFoundException, BadCredentialsException;

	/**
	 * 重置密码
	 * 
	 * @param dwdmid
	 * @return
	 */
	public Dwdm resetDlmm(String dwdmid);

	/**
	 * 保存单位
	 * 
	 * @param dwdm
	 * @return
	 */
	public Dwdm save(Dwdm dwdm);

	/**
	 * 修改单位信息
	 * 
	 * @param dwdm
	 * @return
	 */
	public Dwdm update(Updater<Dwdm> updater);

}
